﻿namespace Renci.iRods.Common
{
    internal enum DataTypes
    {
        /// <summary>
        /// 8 bit char
        /// </summary>
        Char,
        /// <summary>
        /// 8 bit binary data. Syntactically, it is treated the same as "char". But when it is used with the XML protocol, the binary data are encoded and decoded with base64 so that they are printable in the XML message.
        /// </summary>
        Binary,
        /// <summary>
        /// Similar to char - null terminated string.
        /// </summary>
        String,
        /// <summary>
        /// Packing instruction string. Syntactically, it is treated the same as "str".
        /// But this string is used as the packing instruction for other elements.
        /// Using this string, a dependent type element "?" can be used to store different data types.
        /// </summary>
        PiString,
        /// <summary>
        /// 32 bit integer or float.
        /// </summary>
        Int,
        /// <summary>
        /// 64 bit integer or float.
        /// </summary>
        Double,
        /// <summary>
        /// A struct within the struct.
        /// </summary>
        Packet,
        /// <summary>
        /// Dependent type. The data type or packing instruction is dependent on the content of other "piStr" type string.
        /// </summary>
        Any,
        /// <summary>
        /// .NET Specific type to identify enumerated fields
        /// </summary>
        Enum,
    }
}
